SetTimer() with Parameters

도트힐(HOT)를 구현하기 위해서 딜레이를 갖고 재귀하는 함수를 만들었다.

함수를 바인딩 하기 위해 함수 UFUNCTION으로 만들어 준다

UFUNCTION()
void HealOverTimeCharacter(float Value, int Count, float Delay);

아래와 같이 핸들러와 델리게이트를 선언해서 사용하면 된다.

void ABaseCharacter::HealOverTimeCharacter(float Value, int Count, float Delay)
{
	if (Count == 0) return;
	HealCharacter(Value);

	FTimerHandle HealHandler;
	FTimerDelegate HOTDelegate;
	HOTDelegate.BindUFunction(this, FName("HealOverTimeCharacter"), Value, Count - 1, Delay);
	GetWorldTimerManager().SetTimer(HealHandler, HOTDelegate, Delay, false);
}[]()